Apache POI ব্যবহার করে Microsoft Word ডকুমেন্টে Read-only এবং Edit modes কনফিগার করা সম্ভব। Read-only mode হলো এমন একটি অবস্থা যেখানে ডকুমেন্টের কনটেন্ট শুধুমাত্র দেখা যায়, সম্পাদনা করা সম্ভব নয়। অন্যদিকে, Edit mode হলো একটি অবস্থা যেখানে ডকুমেন্ট সম্পাদনা করা যায়। Apache POI এর মাধ্যমে আপনি এই মোডগুলোর মধ্যে স্যুইচ করতে বা কাস্টম কনফিগারেশন করতে পারেন।
Read-only mode কনফিগার করার জন্য আপনি Word ডকুমেন্টে পাসওয়ার্ড প্রোটেকশন বা এক্সেস কন্ট্রোল সেট করতে পারেন, তবে Apache POI সরাসরি "read-only" মোড সেট করার সুবিধা প্রদান করে না। তবে, আপনি ডকুমেন্টটি ওপেন করার সময় এর মধ্যে Protection যুক্ত করতে পারেন, যাতে এটি সম্পাদনার জন্য সুরক্ষিত থাকে।
যদি আপনি ডকুমেন্টটি read-only হিসেবে সেট করতে চান, তবে আপনি সেটি password protection যোগ করে করতে পারেন। Password protection প্রক্রিয়া মূলত Word এর Office Open XML (OOXML) স্ট্যান্ডার্ডের মাধ্যমে কাজ করে, তবে এটি POI এর মাধ্যমে সরাসরি সাপোর্ট করা হয় না। তবে, read-only ডকুমেন্ট তৈরি করার জন্য আপনি ডকুমেন্টের core properties ব্যবহার করে একটি সীমিত অনুমতি প্রদান করতে পারেন।
Edit Mode সাধারণত একটি ডকুমেন্টের modification (সম্পাদনা) সক্ষম করার জন্য ব্যবহৃত হয়। আপনি যদি ডকুমেন্টে সম্পাদনার জন্য নির্দিষ্ট অংশ অ্যাক্সেসযোগ্য করতে চান, তবে আপনি Protection এর মাধ্যমে নির্দিষ্ট এলাকাকে সম্পাদনার জন্য উন্মুক্ত রাখতে পারেন। কিন্তু, Apache POI সম্পূর্ণভাবে এই "Protection" সরাসরি ব্যবস্থাপনা করে না।
আপনি Word ডকুমেন্টে Edit Mode কার্যকর করতে, সম্পূর্ণ ডকুমেন্টে সম্পাদনা অনুমতি দিতে পারেন, অথবা নির্দিষ্ট অংশের জন্য unprotected sections রাখতে পারেন।
import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.wp.usermodel.HeaderFooterPolicy;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class DocumentProtectionExample {
public static void main(String[] args) throws IOException {
// ডকুমেন্ট ওপেন করা
FileInputStream fis = new FileInputStream("EditableDocument.docx");
XWPFDocument document = new XWPFDocument(fis);
// ডকুমেন্টে প্রোটেকশন যোগ করা
XWPFDocument documentWithProtection = document;
// সম্পাদনা নিষিদ্ধ করতে প্রোটেকশন অ্যাপ্লাই করা
documentWithProtection.createProtection().setEditMode(false);
// নতুন ডকুমেন্ট সংরক্ষণ করা
try (FileOutputStream out = new FileOutputStream("ProtectedDocument.docx")) {
documentWithProtection.write(out);
}
System.out.println("ডকুমেন্টে Read-only মোড সফলভাবে অ্যাপ্লাই করা হয়েছে!");
}
}
Word ডকুমেন্টে Protection এবং Unprotection পরিচালনা করা সম্ভব, যেখানে আপনি পুরো ডকুমেন্ট বা কিছু অংশ unprotected রাখতে পারেন।
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class DocumentUnprotectionExample {
public static void main(String[] args) throws IOException {
// ডকুমেন্ট ওপেন করা
FileInputStream fis = new FileInputStream("ProtectedDocument.docx");
XWPFDocument document = new XWPFDocument(fis);
// ডকুমেন্টে প্রোটেকশন রিমুভ করা (Edit Mode)
document.removeProtection();
// পরিবর্তিত ডকুমেন্ট সংরক্ষণ করা
try (FileOutputStream out = new FileOutputStream("EditableDocument.docx")) {
document.write(out);
}
System.out.println("ডকুমেন্টে Edit মোড সক্রিয় করা হয়েছে!");
}
}
Apache POI ব্যবহার করে আপনি Partially Protected Documents তৈরি করতে পারেন, যেখানে ডকুমেন্টের কিছু অংশকে unprotected রাখা যায় এবং কিছু অংশে read-only প্রোটেকশন কার্যকর করা হয়। এটি সাধারণত section-based protection বা form fields ব্যবহারের মাধ্যমে করা হয়।
Apache POI এর মাধ্যমে Microsoft Word ডকুমেন্টে Read-only এবং Edit Modes কনফিগার করা সম্ভব, তবে সরাসরি সম্পূর্ণ read-only mode এবং edit mode কনফিগার করার জন্য প্রোটেকশন ব্যবস্থাপনা করতে হয়। Protection এবং Unprotection এর মাধ্যমে আপনি ডকুমেন্টে নির্দিষ্ট অংশের প্রোটেকশন এবং সম্পাদনা সুবিধা নিয়ন্ত্রণ করতে পারেন। ডকুমেন্টে password protection এবং restricted editing অ্যাপ্লাই করার মাধ্যমে আপনি বিভিন্ন স্তরে read-only এবং edit mode কার্যকর করতে পারেন।
common.read_more